/* 
 * File:   Creature.h
 * Author: Elevator
 *
 * Created on July 14, 2013, 5:15 PM
 */

#ifndef DATA_CREATUREDEF_H
#define DATA_CREATUREDEF_H

#include <string>
#include "Common/Common.h"

#include "Detail.h"
#include "Rotor.h"
#include "Link.h"

namespace data {

	class CreatureDef {
	public:
		CreatureDef( 
			std::string name, 
			std::string description, 
			std::string headId, 
			const ICollection<const Detail*>* details,
			const ICollection<const Rotor*>* rotors,
			const ICollection<Link>* links );

		inline const std::string GetName( ) const {
			return _name;
		}

		inline const std::string GetDescription( ) const {
			return _description;
		}

		inline const std::string GetHeadId( ) const {
			return _headId;
		}

		inline const ICollection<const Detail*>* GetDetails( ) const {
			return _details;
		}

		inline const ICollection<const Rotor*>* GetRotors( ) const {
			return _rotors;
		}

		inline const ICollection<Link>* GetLinks( ) const {
			return _links;
		}

	private:
		std::string _name;
		std::string _description;
		std::string _headId;
		
		const ICollection<const Detail*>* _details;
		const ICollection<const Rotor*>* _rotors;
		const ICollection<Link>* _links;
	};
}
#endif	/* CREATUREDEF_H */
